home *** CD-ROM | disk | FTP | other *** search
- Short: Low Level Debugger
- Uploader: thor@einstein.math.tu-berlin.de (Thomas Richter)
- Author: thor@einstein.math.tu-berlin.de (Thomas Richter)
- Type: dev/debug
- Version: 1.85
- Requires: An Amiga or even better two. The OS version doesn't matter.
-
- *****************************************************************************
- ** **
- ** ___________ **
- ** \ */ **
- ** /----------- ####### ####### ######## **
- ** | ^ | ## ## ## ## ## ## **
- ** | _\ ## ## ## ## ## Version 1.85 **
- ** | | ## ## ## ######## **
- ** | --| ## ## ## ## **
- ** +-----/ ## ## ## ## ## **
- ** | | ####### ####### ## (c) 1993-2001 THOR-Software **
- ** **
- ** **
- ** A Low Level Debugger for all Amiga Systems **
- ** **
- *****************************************************************************
-
- by
-
- _______ _____ _____ __ _
- / / / / / / / \/_/ //_/_
- / /____/ / / /____/ ___ / ____// / _ __
- / / / / / / \ / /|/ / / / /_/ / /\_/_/
- / / / /____/ / / _/__/_/ /__/|_/_/_/ /_/_/ /_
- /
-
- _____________________________________________________________________________
-
- About COP
-
- COP is a low level debugger for all amiga systems. "Low Level" means it
- directly plays with the hardware, does not have GUI, but is unbeatable
- stable. Its main purpose is to debug programs not debugable with the usual
- "source level" debugger, like hardware device drivers, DOS handlers in action
- and much more. It supports debugging by the serial port, thru a standard
- tty terminal (also a COP type 5 terminal is better. A terminal program
- for amigas is included), and a build-in terminal emulation in case no
- second computer is available.
-
- In case you want to use COP, make sure:
-
- -that you really want it. COP is not easy to use!
- -that you know assembly language. It won't work without!
- -that you have a lot of good will!
-
-
- EMail: thor@einstein.math.tu-berlin.de
-
- WWW: http://www.math.tu-berlin.de/~thor/thor/index.html
-
-
- By the way: You should read the documentation first (before trying to get
- COP running)!
-
- This is even more important if you own a '060 or '040 system. Special hints
- can be found at the end of the COP.doc file.
-
- _____________________________________________________________________________
-
- Changes made in 1.85:
-
- - Fixed several 060 related bugs:
- - an unnecessary "fnop" trashed the fpiar register and hence
- made it impossible to debug floating point exception handlers.
- - the bootstrap code of various boards let exec identify the
- 68060 as 68010 and hence trashed the CPU check of the resident
- code of COP. COP runs now the CPU test itself.
- - since the 68060.library has to replace AddTask(), COPs
- AddTask() patch was overwritten in case it was made resident
- before. "RestoreVBR" will now re-install the patch to make
- sure the proper exception handler is called on a crash. This
- is a bit touchy and requires the creation of a temporary
- task.
-
- _____________________________________________________________________________
-
- Changes made in 1.83:
-
- - Fixed the fmovem <dynamic register list> disassembly.
- - Fixed incorrect FPU exception handling for the 040 and the 060.
- - Fixed a spurious Bus error which occured on some 040 systems at times
- the MMU wasn't active (Early bootup)
- - Fixed many bugs in the "Terminal" program:
- - Hangs on menu pop-open are history, I hope. (Semaphore deadlocks)
- - ATR transfer became more stable (but still leaves a lot to be
- desired)
- - ATR "autodetection" mode has been added.
- _____________________________________________________________________________
-
- Changes made in 1.82:
-
- - Fixed the (d.32,PC) EA disassembly which was wrong by two bytes.
- - Added the comment character ";" to the command interpreter.
- _____________________________________________________________________________
-
- Changes made in 1.81:
-
- - Added some workarounds in the terminal driver against a 68030 firmware bug.
- - Fixed the "find.i" command which was broken.
- - Fixed printer support. In case of printer trouble, it did not disable
- printing correctly.
- - The long mulitplication and division opcodes are now correctly disassembled
- as "extended".
- - Fixed a bug in the setup logic which caused the program to report that
- interrupts have been overwritten on plain 68000 systems.
- _____________________________________________________________________________
-
- Changes made in 1.80:
-
- - COP disables now the caches if the MMU is disabled. This helps preventing
- some cache related problems on boards with Z-II memory which might not allow
- burst accesses.
- - COP autodetects now a 68060 CPU even if the correspoding 060 flag in
- ExecBase->AttnFlags is not set correctly. The SET060 option is no longer
- required to correct this manually.
- - Fixed a bug in the disassembler, did not disassemble 64 bit arithmetics
- correctly.
- - Updated the MuForce compatibility hints slightly. Mainly, specify
- NOGURUPATCH and avoid CAPTURESUPER.
-
- _____________________________________________________________________________
-
- Changes made in 1.79:
-
- - Fixed the terminal program a lot. The I/O mechanism was very unstable.
- - Updated the ATerm download protocol.
- - Partially fixed '060 support of the 1.77 release. This might be still
- broken, but there's currently nothing I can do about it.
- - Rewrote the vector setup logic and the autovector monitor.
- - Updated the disassembler: tst.l ax was disassembled as illegal
- instead of extended.
- - Disassembler is now really MMU aware, removed an old cludge.
- _____________________________________________________________________________
-
- Changes made in 1.77:
-
- - Rewrote the IRQ table setup for MC68010 or better. It used to be a mess.
- - Fixed the cache control commands for the 68040 and 68060.
- - Added SegTracker support for stack traceback.
- - Fixed memory manager MMU support. It used to use the SRP instead of the
- URP for checking table accesses and therefore caused problems with
- MuGuardianAngel.
-
- This release seems still to have problems on some 030 machines if it is
- installed with SetCPU FASTROM active. I don't know why as I can't reproduce
- it on my 030 A2000. MuFastROM is recommended anyways.
- _____________________________________________________________________________
-
- Changes made in 1.76:
-
- - Internal release, unpublished.
-
- _____________________________________________________________________________
-
- Changes made in 1.75:
-
- - Modified the exception handler routines a bit, they no longer block
- interrupts completely.
- - Added the DARKEN command line option to blank the screen.
- - Fixed the memory list scan that failed with remapped low-memory areas.
- _____________________________________________________________________________
-
- Changes made in 1.73:
-
- - The "restorevbr" option did not work correctly and could cause problems
- on 040 and 060 based machines.
- - The MMU could have been disabled on startup, forgot to saveback a
- register.
- - 030 bus error processing can now handle MuForce instruction emulation
- in the zero-page.
-
- _____________________________________________________________________________
-
- Changes made in 1.72:
-
- - Fixed a stupid bug in the 060 support code. COP did not test correctly
- whether a memory address is really available due to a broken MMU table
- scanner.
- _____________________________________________________________________________
-
- Changes made in 1.71:
-
- - The 1.69 version disabled the MMU on 030 systems completely. Fixed.
- - COP can now be made resident even on systems without autoconfig fast
- memory.
- - The COP initializer was a bit too picky about the FPU bits and therefore
- refused to keep resident on 040 and 060 systems.
- - Fixed 040 FPU related bugs.
- - Partial RTG support implemented, yeah!
-
- _____________________________________________________________________________
-
-
- Changes made in 1.69:
-
- - Fixed the disassembly of some 040 specific instructions, cpushp and others.
- - Fixed the startup code.
- - Fixed the documentation, COP was never Enforcer compatible when run on
- a 040 and 060, unfortunately. It is compatible to "MuForce", which does
- the same.
- - The bus error handler tries now to complete missing writebacks of the 040
- processor.
-
- _____________________________________________________________________________
-
- Changes made in 1.68:
-
- - Added 040 and 060 FPU instructions for single and double precision in the
- disassembler.
- - Added PLPAR/W instructions.
- - Overflow handling in the expression evaluation was buggy.
- - MMU table lookup for 68060 was buggy, worked only for complete 4K tables.
- - MMU management included, the MMU registers are now written back.
- (Let's hope this works for the 040 and 060, I haven't tested this)
- - The MMU URP/SRP registers can now be set by the user. However, be careful
- with it, this may easely trash the system.
- - FPU emulator traps haven't been filtered out for the 040.
- _____________________________________________________________________________
-
- Changes made in 1.67:
-
- - Due to a silly mistake, the Enforcer was disabled completely for the
- 68030 processor.... Argh!
-
- _____________________________________________________________________________
-
- Changes made in 1.66:
-
- - Fixed a horror bug in the MMU control section. After disabling the MMU,
- I forgot to flush the ATC and the cache of the 68030. Since the cache
- of the '020 and the '030 is BEHIND the MMU, it could still contain
- addresses marked as INVALID and might create an enforcer hit on some
- systems. This happens most likely in systems with the supervisor stack
- in chip ram. Fixed.
- - General cleanup of the vector base register installation routine.
- - Included the SSPToFast program which *should* be run in the startup
- sequence for systems without autoconfig fast ram. Moving the SSP to
- fast ram will increase the performance of the system.
-
-
- This release is mainly to due to Jörg Riemer. Thanks for letting me debug
- COP on his A1200, and thanks for the hospitality.
-
-
- Changes made in 1.65:
-
- - Fixed a bug in the 68851 detection routine. This thing is now getting
- "metamagical", too. As the rest of the kernal code...
- Thanks, Dennis, for letting me know.
- - COP RESTOREVBR restores now, too ,the Alert entry that might have been
- reset by the Enforcer.
- - Removed a bug from the symbol hunk parser that didn't respect HUNK_DEBUGs
- as it should.
- _____________________________________________________________________________
-
- Changes made in 1.64:
-
- - Fixed another set of bugs in the disassembler. The "pmove bad/bac" opcoded
- did not work.
- - The disassembler knows now the "fnop" command.
- - The register saveback routine was faulty for the '020 - it tried to save
- the non-existing tt0,tt1 registers.
- _____________________________________________________________________________
-
- Changes made in 1.63:
-
- - Fixed a bug in the disassembler. The 0x7100 opcode was not detected as
- illegal.
- - Fixed memory addressing bugs in the disassembler. Did not check for
- validity of addresses.
- - Fixed an addressing bug in the label manager. Did not check whether an
- address is valid or not.
- - COP does no longer run the ROM code for the '060 in case no Enforcer/060
- library is installed.
- - Added support code for the 68851 PMMU coprocessor. Should be detected
- correctly now.
- _____________________________________________________________________________
-
- Changes made in 1.62:
-
- - Neither the NOMMU nor the NOEMU command line options worked in 1.61.
- Sigh.
- - Added MMU and EMU keywords for symmetry.
- - Fixed just another bug in the '060 support code, thanks to Mark for
- the hints and the testing. (I guess we're at 4% now).
- - Added the MMU support for MOVE, FIND and FILL commands.
- - Improved FIND command, displays the found instructions or bytes.
- - Made RESTOREVBR a bit smarter.
- - Updated the included DDT file to contain '060 specific gurus. Thanks,
- Mark!
- ____________________________________________________________________________
-
- Changes made in 1.61:
-
- - Fixed a lot of bugs in the '060 support code. Thus, the chance that
- this release operates properly on a '060 has about doubled (from 1% to
- 2%, to be precise...).
- - Added NOEMU command line switch to bypass emulator traps.
- - Added proper support for the '060 '040 MMU and cache.
- - Debugged the AbsExecBase move.l emulator for the '060. Might actually work
- by now, but is untested.
- - Changed some details in MMU handling.
- - Changed minor details for COP capturing its own bugs.
- - Added another function to the label manager, showing the label given an
- address - LABL.F command.
- - Fixed a bug in the memory manager that did not handle non-writable memory
- in the correct way.
- - Fixed a bug in the set-breakpoint logic.
- - Enhanced the stack traceback with the new label manager. It tries to find
- out the label names.
- _____________________________________________________________________________
-
- Changes made in 1.60:
-
- - Removed bugs in the breakpoint logic.
- - Added SegTracker support for the REGS.G and (new) SEGM commands.
- - Updated MMU/Enforcer support since I finally bought a real 68030.
- - Added the NOMMU command line switch to disable the MMU bypass.
- - Added the ability to pre-compile the DDT files for faster parsing
- with the "PRE" command line option.
- - Updated the Terminal program a bit.
- _____________________________________________________________________________
-
- Changes made in 1.59:
-
- - Removed a bug in the expression evaluator that made the indirection
- operator [] unuseable.
- - Removed a bug in the conditional break points.
- - Rewrote parts of the system segment.
- - Added support for the CyberGuard. That's not yet tested, however!
- - Added more '040 instructions I forgot.
- - Fixed a bug in the disassembler.
- - The previous fix of the "NODE" command broke it even more, fixed!
- - Fixed plain MC68000 support that was broken since 1.56.
- _____________________________________________________________________________
-
- Changes made in 1.58:
-
- -Added two '040 instructions I wasn't aware of.
- -Rewrote the complete math support, an FPU is no longer required.
- -Enhanced the "NODE" command, it displays now all additional information
- it can hold of.
- -Removed a stupid bug from the "NODE" command.
- -Added the "LABS" command to view the defined labels. Study the doc file for
- details.
-
- _____________________________________________________________________________
-
- Changes made in 1.57:
-
- -Added PAL/NTSC switch.
- -Added a check for many command that won't work in a splitted display.
-
- _____________________________________________________________________________
-
- Changes made in 1.56:
-
- -Removed a bug in the printer hardware driver that caused one additional
- character to be printed.
- -Added command to eject paper.
- -Added Enforcer support for the MC68020 and MC68030 CPUs.
- -Added partial MMU support, however no MMU related commands are available.
- Enforcer must be run for this purpose.
- -Added IRQ CopyBack mode.
- -Fixed several final bugs in the 1.55 release, esp. some MC68060 related,
- although the support isn't complete yet ('60 FPU support is still somewhat
- broken, as the FPU part must be re-written anyways).
-
-
- Thomas,
- March 2001
-